home *** CD-ROM | disk | FTP | other *** search
- 1 rem=-=-=-=-=-=-=-=-=-=-=-=
- 2 rem= sprite controller =
- 3 rem=-=-=-=-=-=-=-=-=-=-=-=
- 4 rem
- 5 rem sprite data must already
- 6 rem be in memory.
- 9 rem
- 10 def fnsb(n)=peek(mm) or 2^n
- 20 def fnrb(n)=peek(mm) and (255-2^n)
- 30 def fngb(n)=-((pm and 2^n)>0)
- 40 vv=53248 :rem vic address
- 490 end
- 495 rem=-=-=-=-=-=-=-=-=-=-=-=
- 496 rem= set sprite pointer =
- 497 rem= input: sn,bk =
- 498 rem=-=-=-=-=-=-=-=-=-=-=-=
- 500 poke 2040+sn,bk
- 510 return
- 595 rem=-=-=-=-=-=-=-=-=-=-=-=
- 596 rem= set x coordinate =
- 597 rem= input: sn,xx =
- 598 rem=-=-=-=-=-=-=-=-=-=-=-=
- 600 mm=vv+16 : x0=xx
- 610 if xx<256 then poke mm,fnrb(sn):goto 630
- 620 x0=xx-256 : poke mm,fnsb(sn)
- 630 poke vv+sn*2,x0
- 640 return
- 695 rem=-=-=-=-=-=-=-=-=-=-=-=
- 696 rem= set y coordinate =
- 697 rem= input: sn,yy =
- 698 rem=-=-=-=-=-=-=-=-=-=-=-=
- 700 poke vv+sn*2+1,yy
- 710 return
- 795 rem=-=-=-=-=-=-=-=-=-=-=-=
- 796 rem= set color =
- 797 rem= input: sn,cc =
- 798 rem=-=-=-=-=-=-=-=-=-=-=-=
- 800 poke vv+39+sn,cc
- 810 return
- 895 rem=-=-=-=-=-=-=-=-=-=-=-=
- 896 rem= turn sprite on =
- 897 rem= input: sn =
- 898 rem=-=-=-=-=-=-=-=-=-=-=-=
- 900 mm=vv+21
- 910 poke mm,fnsb(sn)
- 920 return
- 995 rem=-=-=-=-=-=-=-=-=-=-=-=
- 996 rem= turn sprite off =
- 997 rem= input: sn =
- 998 rem=-=-=-=-=-=-=-=-=-=-=-=
- 1000 mm=vv+21
- 1010 poke mm,fnrb(sn)
- 1020 return
- 1095 rem=-=-=-=-=-=-=-=-=-=-=-=
- 1096 rem= x expansion on =
- 1097 rem= input: sn =
- 1098 rem=-=-=-=-=-=-=-=-=-=-=-=
- 1100 mm=vv+29 :poke mm,fnsb(sn)
- 1110 return
- 1195 rem=-=-=-=-=-=-=-=-=-=-=
- 1196 rem= x expansion off =
- 1197 rem= input: sn =
- 1198 rem=-=-=-=-=-=-=-=-=-=-=
- 1200 mm=vv+29 :poke mm,fnrb(sn)
- 1210 return
- 1295 rem=-=-=-=-=-=-=-=-=-=-=
- 1296 rem= y expansion on =
- 1297 rem=-=-=-=-=-=-=-=-=-=-=
- 1300 mm=vv+23 :poke mm,fnsb(sn)
- 1310 return
- 1395 rem=-=-=-=-=-=-=-=-=-=-=
- 1396 rem= y expansion off =
- 1397 rem= input: sn =
- 1398 rem=-=-=-=-=-=-=-=-=-=-=
- 1400 mm=vv+23 :poke mm,fnrb(sn)
- 1410 return
- 1495 rem=-=-=-=-=-=-=-=-=-=-=
- 1496 rem= multi-color mode =
- 1497 rem= input: sn =
- 1498 rem=-=-=-=-=-=-=-=-=-=-=
- 1500 mm=vv+28 :poke mm,fnsb(sn)
- 1510 return
- 1595 rem=-=-=-=-=-=-=-=-=-=-=
- 1596 rem= hi-res mode =
- 1597 rem= input: sn =
- 1598 rem=-=-=-=-=-=-=-=-=-=-=
- 1600 mm=vv+28 :poke mm,fnrb(sn)
- 1610 return
- 1695 rem-=-=-=-=-=-=-=-=-=-=-=-=
- 1696 rem define mc colors 1&2 =
- 1697 rem input: c1,c2 =
- 1698 rem-=-=-=-=-=-=-=-=-=-=-=-=
- 1700 poke vv+37,c1:poke vv+38,c2
- 1710 return
- 1794 rem-=-=-=-=-=-=-=-=-=-=-=-=
- 1795 rem any spr/spr collision =
- 1796 rem input: none =
- 1797 rem output: pm=0 if none =
- 1798 rem-=-=-=-=-=-=-=-=-=-=-=-=
- 1800 pm=peek(vv+30)
- 1810 return
- 1820 if ca and cb then sflg=-1
- 1830 return
- 1894 rem-=-=-=-=-=-=-=-=-=-=-=-=
- 1895 rem any spr/bkgd collision=
- 1896 rem input: none =
- 1897 rem output: pm=0 if none =
- 1898 rem-=-=-=-=-=-=-=-=-=-=-=-=
- 1900 pm=peek(vv+31)
- 1910 return
- 1994 rem-=-=-=-=-=-=-=-=-=-=-=-=
- 1995 rem spr priority < bkgd =
- 1996 rem input: sn =
- 1997 rem-=-=-=-=-=-=-=-=-=-=-=-=
- 2000 mm=vv+27 : poke mm,fnsb(sn)
- 2010 return
- 2094 rem-=-=-=-=-=-=-=-=-=-=-=-=
- 2095 rem spr priority > bkgd =
- 2096 rem input: sn =
- 2097 rem-=-=-=-=-=-=-=-=-=-=-=-=
- 2100 mm=vv+27 : poke mm,fnrb(sn)
- 2110 return
- 2194 rem-=-=-=-=-=-=-=-=-=-=-=-=
- 2195 rem spr-a//spr-b collide? =
- 2196 rem input: sa,sb =
- 2197 rem output:sflg=0 if not =
- 2198 rem-=-=-=-=-=-=-=-=-=-=-=-=
- 2200 pm=peek(vv+30) : sflg=0
- 2210 ca=fngb(sa) : cb=fngb(sb)
- 2220 if ca and cb then sflg=-1
- 2230 return
- 2294 rem-=-=-=-=-=-=-=-=-=-=-=-=
- 2295 rem spr-n//bkgd collide? =
- 2296 rem input: sn =
- 2297 rem output:bflg=0 if not =
- 2298 rem-=-=-=-=-=-=-=-=-=-=-=-=
- 2300 pm=peek(vv+31)
- 2310 ca=fngb(sn) : bflg=0
- 2320 if ca then bflg=-1
- 2330 return
-